package mpbe.estructura;

/*
 * Este codigo es software libre y se encuentra licenciado 
 * bajo los términos de la Licencia Pública General de GNU versión 3 
 * según se encuentra publicada por la Free Software Foundation.
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Autor: Martin Pablo Bellanca <martin.bellanca@gmail.com>
 * web: http://mpbe.blogspot.com/
 */

import java.util.Vector;

public class MaterialesLista {
	public Vector<Material> materiales;
	
	public MaterialesLista(){
		materiales = new Vector<Material>();
	}
	
	public MaterialesLista(String archivo){
		materiales = new Vector<Material>();
		cargarMateriales(archivo);
	}
	
	public boolean cargarMateriales(String archivo) {
		// Hormigones **********************************************
		Material mm = new Material();
		mm.Tipo = "Hormigon";
		mm.Designacion = "H-13"; // H-13 **************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 10e-6; //TODO verificar
		mm.Peso_Unitario = 0;
		mm.Bf = 1.05; //KN/cm2
		mm.Es = 24000; //KN/cm2
		mm.El = -3.5;
		mm.Ese = -2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Hormigon";
		mm.Designacion = "H-17"; // H-17 ************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 10e-6; //TODO verificar
		mm.Peso_Unitario = 0;
		mm.Bf = 1.4; //KN/cm2
		mm.Es = 27500; //KN/cm2
		mm.El = -3.5;
		mm.Ese = -2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Hormigon";
		mm.Designacion = "H-21"; // H-21 *************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 10e-6; //TODO verificar
		mm.Peso_Unitario = 0;
		mm.Bf = 1.75; //KN/cm2
		mm.Es = 30000; //KN/cm2
		mm.El = -3.5;
		mm.Ese = -2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Hormigon";
		mm.Designacion = "H-25"; // H-25 ***************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 10e-6; //TODO verificar
		mm.Peso_Unitario = 0;
		mm.Bf = 1.99; //KN/cm2
		mm.Es = 0; //KN/cm2
		mm.El = -3.5;
		mm.Ese = -2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Hormigon";
		mm.Designacion = "H-30"; // H-30 **************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 10e-6; //TODO verificar
		mm.Peso_Unitario = 0;
		mm.Bf = 2.3; //KN/cm2
		mm.Es = 34000; //KN/cm2
		mm.El = -3.5;
		mm.Ese = -2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		
		//Aceros ******************************
		mm = new Material();
		mm.Tipo = "Acero";
		mm.Designacion = "Tipo I-ADN220"; // Tipo I **************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 0;
		mm.Peso_Unitario = 0;
		mm.Bf = 22; //KN/cm2
		mm.Es = 21000;
		mm.El = 5;
		mm.Ese = 1.04;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Acero";
		mm.Designacion = "Tipo III-ADN420"; // Tipo III **************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 0;
		mm.Peso_Unitario = 0;
		mm.Bf = 42; //KN/cm2
		mm.Es = 21000;
		mm.El = 5;
		mm.Ese = 2;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		mm = new Material();
		mm.Tipo = "Acero";
		mm.Designacion = "Tipo IV-ADN500"; // Tipo IV **************
		mm.Coef_Poison = 0.3;
		mm.Coef_Dilatacion = 0;
		mm.Peso_Unitario = 0;
		mm.Bf = 50; //KN/cm2
		mm.Es = 21000;
		mm.El = 5;
		mm.Ese = 2.38;
		mm.Cte_Torsion = 0;
		materiales.add(mm);
		
		return false;
	}
	
	// Funciones Get
	public Material get(String designacion) {
		Material res = null;
		Material aux = new Material();
		for (int ii = 0; ii < materiales.size(); ii++){
			aux = materiales.get(ii);
			if (aux.Designacion.equals(designacion)) {
				res = aux;
				break;
			}
		}
		return res;
	}
	
	public Vector<Material> getTipo(String tipo){
		Vector<Material> res = new Vector<Material>();
		Material aux = new Material();
		for (int ii = 0; ii < materiales.size(); ii++){
			aux = materiales.get(ii);
			if (aux.Tipo.equals(tipo)) res.add(aux);
		}
		return res;
	}
	
	public int indexOf (String designacion){
		int res = -1;
		for (int ii = 0; ii < materiales.size(); ii++){
			if (materiales.get(ii).Designacion.equals(designacion)) {
				res = ii;
				break;
			}
		}	
		return res;
	}
	
}
